.TH std::FILE 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::FILE \- std::FILE

.SH Synopsis
   Defined in header <cstdio>
   typedef /* unspecified */ FILE;

   Each std::FILE object denotes a C stream.

   C standard (referenced by C++ standard) does not specify whether std::FILE is a
   complete object type. While it may be possible to copy a valid std::FILE, using a
   pointer to such a copy as an argument for an I/O function invokes unspecified
   behavior. In other words, std::FILE may be semantically non-copyable.

   I/O streams can be used for both unformatted and formatted input and output.
   Furthermore, the functions that handle input and output can also be
   locale-sensitive, such that wide/multibyte conversions are performed as necessary.

.SH Notes

   POSIX explicitly requires that the LC_CTYPE facet of the currently installed C
   locale be stored within the FILE object the moment the stream's orientation becomes
   wide; POSIX requires that this LC_CTYPE facet be used for all future I/O on this
   stream until the orientation is changed, regardless of any subsequent call to
   std::setlocale.

   It is intended that each line of text be composed of data that are essentially
   human-readable. POSIX implementations do not distinguish between text and binary
   streams (there is no special mapping for '\\n' or any other characters).

.SH See also

   basic_streambuf abstracts a raw device
                   \fI(class template)\fP
   basic_filebuf   implements raw file device
                   \fI(class template)\fP
   stdin           expression of type FILE* associated with the input stream
   stdout          expression of type FILE* associated with the output stream
   stderr          expression of type FILE* associated with the error output stream
                   (macro constant)
   C documentation for
   FILE
